package com.cskaoyan.demo.bean.common;

import com.github.pagehelper.PageInfo;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author stone
 * @date 2022/04/06 10:13
 */

@NoArgsConstructor
@Data
public class CommonData<T> {

    /*limit: 20
    list: [{id: 1152101, goodsSn: "1152101", name: "魔兽世界 部落 奥格瑞玛 拉杆箱 可登机", categoryId: 1012001, brandId: 0,…},…]
    page: 6
    pages: 13
    total: 241*/
    private Integer total;
    private Integer pages;
    private Integer limit;
    private Integer page;
    private List<T> list;


    public static CommonData data(PageInfo pageInfo) {
        CommonData data = new CommonData();
        data.setTotal((int) pageInfo.getTotal());
        data.setPages(pageInfo.getPages());
        data.setPage(pageInfo.getPageNum());
        data.setLimit(pageInfo.getPageSize());
        data.setList(pageInfo.getList());
        return data;
    }

    public static CommonData data(List list) {
        CommonData data = new CommonData();
        data.setTotal(list.size());
        data.setPages(1);
        data.setPage(1);
        data.setLimit(list.size());
        data.setList(list);
        return data;
    }

    public static CommonData dataPageInfo(List list) {
        PageInfo pageInfo = new PageInfo<>(list);
        return CommonData.data(pageInfo);
    }

    public static CommonData pagesZeroData(List list) {
        CommonData data = new CommonData();
        data.setTotal(list.size());
        data.setPages(0);
        data.setPage(0);
        data.setLimit(0);
        data.setList(list);
        return data;
    }
}
